﻿#pragma once
#include "Index.h"

/**
 * 二进制中1的个数
 *
 * 输入一个整数 n ，输出该数32位二进制表示中1的个数。其中负数用补码表示。
 * 数据范围：−2^31<=n<=2^31−1
 * 即范围为:−2147483648<=n<=2147483647
 */
class ICountOfBitOne
{
public:
    virtual int NumberOf1(int n) = 0;
};

class CountOfBintOne
{
public:
	class Solution:public ICountOfBitOne
	{
	public:
		int NumberOf1(int n) override
		{
			int ans = 0;
			for(int i=0;i<32;++i)
			{
				if (n & (1 << i))
					ans++;
			}
			return ans;
		}
	};
};